import { HttpStatus } from '@nestjs/common';

export const HTTP_CODE = {
  // =========================================
  // =========================================
  // ================== 2** ==================
  // =========================================
  // =========================================

  /**
   * 200 - 请求成功
   */
  SUCCESS: HttpStatus.OK, // 请求成功

  // =========================================
  // =========================================
  // ================== 3** ==================
  // =========================================
  // =========================================

  /**
   * 304 - 返回值内容未发生变更
   */
  RDATA_NOT_CHANGE: HttpStatus.NOT_MODIFIED, // TODO: 错误处理

  // =========================================
  // =========================================
  // ================== 4** ==================
  // =========================================
  // =========================================

  /**
   * 400 - 参数不正确
   */
  DTO_NOT_MATCH: HttpStatus.BAD_REQUEST,
  /**
   * 401 - jwt 认证失败
   */
  JWT_ERROR: HttpStatus.UNAUTHORIZED,
  /**
   * 403 - jwt认证通过,但是权限不足
   */
  AUTH_NOT_CURRECT: HttpStatus.FORBIDDEN, // TODO: 错误处理
  /**
   * 404 - 路由不存在
   */
  ROUTE_NOT_FOUND: HttpStatus.NOT_FOUND,
  /**
   * 405 - 路由访问方式不正确
   */
  ROUTE_METHOD_WRONG: HttpStatus.METHOD_NOT_ALLOWED,
  /**
   * 413 - 请求体过大
   */
  TOO_LARGE_PAYLOAD: HttpStatus.PAYLOAD_TOO_LARGE, // TODO: 错误处理
  /**
   * 418 - 玩笑: 茶壶冲咖啡 (https://zh.wikipedia.org/wiki/超文本咖啡壶控制协议)
   */
  JUST_A_JOKE: HttpStatus.I_AM_A_TEAPOT, // TODO: 错误处理
  /**
   * 429 - 请求过于频繁
   */
  TOO_MANY_TIMES: HttpStatus.TOO_MANY_REQUESTS, // TODO: 错误处理

  // =========================================
  // =========================================
  // ================== 5** ==================
  // =========================================
  // =========================================

  /**
   * 500 - 服务错误, 服务内部报错
   */
  SERVER_ERROR: HttpStatus.INTERNAL_SERVER_ERROR, // TODO: 错误处理
  /**
   * 503 - 服务未运行,正在重启等状态,稍后可恢复
   */
  SERVER_NOT_WORKING: HttpStatus.SERVICE_UNAVAILABLE, // TODO: 错误处理
};
